package com.example.patentback.entity;

import lombok.Data;
import lombok.ToString;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.persistence.*;

@Data
@ToString
public class Patent {
    /**
     * 专利表主键
     */
    @Id
    private Long id;

    /**
     * 专利类型：外观专利、实用新型专利、发明专利
     */
    private String type;

    /**
     * 专利简介
     */
    private String content;

    /**
     * 助手id
     */
    @Column(name = "helper_id")
    private Long helperId;

    /**
     * 文献id
     */
    @Column(name = "document_id")
    private Long documentId;

    @Column(name = "create_time")
    private Date createTime;

    @Column(name = "update_time")
    private Date updateTime;



    /**
     * 修改意见
     */
    private String suggestion;

    /**
     * 0在代表刚创建，1代表正在评估，2代表已评估，3代表正在申请，4代表审核，5代表通过，6代表在售
     */
    private Integer status;

    private String name;

    /**
     * 证书id
     */
    @Column(name = "certificate_id")
    private Long certificateId;

    /**
     * 费用id
     */
    @Column(name = "fee_id")
    private Long feeId;

    @Transient
    private List<Applicant> applicants = new ArrayList<>();

    /**
     * 获取专利表主键
     *
     * @return id - 专利表主键
     */
    public Long getId() {
        return id;
    }

    /**
     * 设置专利表主键
     *
     * @param id 专利表主键
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * 获取专利类型：外观专利、实用新型专利、发明专利
     *
     * @return type - 专利类型：外观专利、实用新型专利、发明专利
     */
    public String getType() {
        return type;
    }

    /**
     * 设置专利类型：外观专利、实用新型专利、发明专利
     *
     * @param type 专利类型：外观专利、实用新型专利、发明专利
     */
    public void setType(String type) {
        this.type = type;
    }

    /**
     * 获取专利简介
     *
     * @return content - 专利简介
     */
    public String getContent() {
        return content;
    }

    /**
     * 设置专利简介
     *
     * @param content 专利简介
     */
    public void setContent(String content) {
        this.content = content;
    }

    /**
     * 获取助手id
     *
     * @return helper_id - 助手id
     */
    public Long getHelperId() {
        return helperId;
    }

    /**
     * 设置助手id
     *
     * @param helperId 助手id
     */
    public void setHelperId(Long helperId) {
        this.helperId = helperId;
    }

    /**
     * 获取文献id
     *
     * @return document_id - 文献id
     */
    public Long getDocumentId() {
        return documentId;
    }

    /**
     * 设置文献id
     *
     * @param documentId 文献id
     */
    public void setDocumentId(Long documentId) {
        this.documentId = documentId;
    }

    /**
     * @return create_time
     */
    public Date getCreateTime() {
        return createTime;
    }

    /**
     * @param createTime
     */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    /**
     * @return update_time
     */
    public Date getUpdateTime() {
        return updateTime;
    }

    /**
     * @param updateTime
     */
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    /**
     * 获取修改意见
     *
     * @return suggestion - 修改意见
     */
    public String getSuggestion() {
        return suggestion;
    }

    /**
     * 设置修改意见
     *
     * @param suggestion 修改意见
     */
    public void setSuggestion(String suggestion) {
        this.suggestion = suggestion;
    }

    /**
     * 获取0在代表刚创建，1代表正在评估，2代表已评估，3代表正在申请，4代表审核，5代表通过，6代表在售
     *
     * @return status - 0在代表刚创建，1代表正在评估，2代表已评估，3代表正在申请，4代表审核，5代表通过，6代表在售
     */
    public Integer getStatus() {
        return status;
    }

    /**
     * 设置0在代表刚创建，1代表正在评估，2代表已评估，3代表正在申请，4代表审核，5代表通过，6代表在售
     *
     * @param status 0在代表刚创建，1代表正在评估，2代表已评估，3代表正在申请，4代表审核，5代表通过，6代表在售
     */
    public void setStatus(Integer status) {
        this.status = status;
    }

    /**
     * @return name
     */
    public String getName() {
        return name;
    }

    /**
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取证书id
     *
     * @return certificate_id - 证书id
     */
    public Long getCertificateId() {
        return certificateId;
    }

    /**
     * 设置证书id
     *
     * @param certificateId 证书id
     */
    public void setCertificateId(Long certificateId) {
        this.certificateId = certificateId;
    }

    /**
     * 获取费用id
     *
     * @return fee_id - 费用id
     */
    public Long getFeeId() {
        return feeId;
    }

    /**
     * 设置费用id
     *
     * @param feeId 费用id
     */
    public void setFeeId(Long feeId) {
        this.feeId = feeId;
    }
}